package com.wsoft.bpm.constants;

/**
 * 工作流常量
 *
 * @Author zhonglj
 * @Date 2024-09-19 14:49
 */
public class BpmConstant {
    /**
     * id前缀
     **/
    public static final String GENERATE_ID_PREFIX_EVENT_BASED_GATEWAY = "EventBasedGateway";
    public static final String GENERATE_ID_PREFIX_EXCLUSIVE_GATEWAY = "ExclusiveGateway";
    public static final String GENERATE_ID_PREFIX_INCLUSIVE_GATEWAY = "InclusiveGateway";
    public static final String GENERATE_ID_PREFIX_PARALLEL_GATEWAY = "ParallelGateway";
    public static final String GENERATE_ID_PREFIX_USERTASK = "UserTask";
    public static final String GENERATE_ID_PREFIX_TIME_BOUNDARY_EVENT = "TimeBoundaryEvent";
    public static final String GENERATE_ID_PREFIX_TIME_INTERMEDIATE_EVENT = "IntermediateEvent";
    public static final String GENERATE_ID_PREFIX_MESSAGE_BOUNDARY_EVENT = "MessageBoundaryEvent";
    public static final String GENERATE_ID_PREFIX_MESSAGE_INTERMEDIATE_EVENT = "MessageIntermediateEvent";
    public static final String GENERATE_ID_PREFIX_END_EVENT = "EndEvent";
    public static final String GENERATE_ID_PREFIX_TERMINATE_END_EVENT = "TerminateEndEvent";
    public static final String GENERATE_ID_PREFIX_START_EVENT = "StartEvent";
    public static final String GENERATE_ID_PREFIX_PROCESS = "Process";
    public static final String GENERATE_ID_PREFIX_SUB_PROCESS = "SubProcess";
    public static final String GENERATE_ID_PREFIX_SEQUENCE_FLOW = "SequenceFlow";
    public static final String GENERATE_ID_PREFIX_CALL_ACTIVITY = "CallActivity";
    /**
     * 自动检测开始事件的启动条件
     */
    public static final String TASK_DUE_DATE_ACTION_AUTORUN = "autoRun";
    public static final String AUTO_COMPLETE_COMMENT = "超时自动完成!";
    public static final String PROCESS_DEF_CANDIDATE = "candidate";
    public static final String STOP_PROCESS_INSTANCE_FORCEFULLY = "Forcefully ended by user";
    public static final String DEFAULT_STATUS_COLUMN = "status";
    public static final String DEFAULT_BUSINESS_KEY_COLUMN = "business_code";
    public static final String SKIP_EXPRESSION = "_ACTIVITI_SKIP_EXPRESSION_ENABLED";


    // 代理类名称
    /**
     * 自动检测开始事件的启动条件
     */
    public static final String START_PROCESS_ABLE_LISTENER = "${startProcessAbleListener}";
    /**
     * 流程结束自动回调
     */
    public static final String PROCESS_END_CALL_BACK_DELEGATE_EXPRESSION = "${processEndCallBackListener}";
    /**
     * 流程终结自动回调
     */
    public static final String PROCESS_TERMINATE_END_CALL_BACK_DELEGATE_EXPRESSION = "${processTerminateEndCallBackListener}";

    /**
     * 动态上级配置监听器
     */
    public static final String DYNAMIC_USER_TASK_LISTENER = "${dynamicUserTaskListener}";
    /**
     * 开启跳过功能
     */
    public static final String SKIP_ABLE_LISTENER = "${skipAbleListener}";
    /**
     * 用户任务候选人表达式监听器
     */
    public static final String TASK_CANDIDATE_EXPRESSION_LISTENER = "${taskCandidateExpressionListener}";
    /**
     * 通用流程变量设置
     */
    public static final String ALL_LETTERS = "QWERTYUIOPLKJHGFDSAZXCVBNMqwertyuioplkjhgfdsazxcvbnm";
    /**
     * 动态节点变量设置
     */
    public final static String DYNAMIC_NODE = "dynamicApprovalNode";
    public final static String DYNAMIC_SERIAL_NODE = DYNAMIC_NODE + "Serial";
    public final static String DYNAMIC_PARALLEL_NODE = DYNAMIC_NODE + "Parallel";
    public final static String DYNAMIC_CHAIN_NODE = DYNAMIC_PARALLEL_NODE + "Chain";
    public final static String DYNAMIC_ORIGIN_TASK_ID = "originTaskId";
    public final static String DYNAMIC_SIGN_TYPE = "type";
    public final static String DYNAMIC_ASSIGN_LIST = "dynamicAssignList";
    /**
     * 动态加签审批人标识
     */
    public static final String DYNAMIC_ASSIGNEE_SIGN = "DYNAMIC_ASSIGNEE_SIGN";
    /**
     * 动态上级审批人标识
     */
    public static final String DYNAMIC_ASSIGNEE_LEADER = "DYNAMIC_ASSIGNEE_LEADER";
    public static final String DYNAMIC_ASSIGN_OWNER = "DYNAMIC_ASSIGN_OWNER";
    public static final String DYNAMIC_ASSIGN_QUERY_DATA = "DYNAMIC_ASSIGN_QUERY_DATA";

    public static final String DC_TITLE_TYPE_FREEMARKER = "DC_TITLE_TYPE_FREEMARKER";

    /**
     * 绩效工作流常量
     */
    public static class Hr {
        public static final String VARIABLE_KEY_PERFORMANCE_NOTICE_LIST = "performanceNoticeList";
        /**
         * 动态审批链数据集合流程变量名
         */
        public static final String VARIABLE_KEY_DYNAMIC_APPROVAL_CHAIN_KEY = "DynamicApprovalChainKey";
    }
}
